#ifndef GAMEOBJECT_H_
#define GAMEOBJECT_H_

#include "Transform.h"
#include "Component.h"

#include <list>

namespace Pantsu {

	class GameObject {

	public:
		GameObject();
		GameObject( const GameObject &i_gameobject );
		
		GameObject operator = ( GameObject &i_gameobject ) {
		}

		virtual ~GameObject();

	public:
		
		void AttachComponent( const std::string &i_type );
		Component *GetComponent( const std::string &i_type );

		void Update();

	public:
		/* Set / Get */
		inline Transform &GetTransform() {
			return m_Transform;
		}

	private:
		Transform m_Transform;
		Component *m_Components[ 50 ];
		int       m_NumOfComponents;
	};
}
#endif